package com.wrial.simple;
/*
 * @Author  Wrial
 * @Date Created in 11:22 2020/3/26
 * @Description  车的可用捕获量  R:车   B：象  P：卒  大写白棋，小写黑  此题只能是白吃黑
 */

public class LeetCode_999 {


    //1.定位车的位置  2.根据它的行和列进行扫描  3.如果第一个就是卒就是可以吃，否则就不能
    public int numRookCaptures(char[][] board) {
        // 定义上下左右四个方向
        int[] dx = {-1, 1, 0, 0};
        int[] dy = {0, 0, -1, 1};

        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                // 找到白车所在的位置
                if (board[i][j] == 'R') {
                    // 分别判断白车的上、下、左、右四个方向
                    int returnV = 0;
                    for (int k = 0; k < 4; k++) {
                        int x = i, y = j;
                        while (true) {
                            x += dx[k];
                            y += dy[k];
                            if (x < 0 || x >= 8 || y < 0 || y >= 8 || board[x][y] == 'B') {
                                break;
                            }
                            if (board[x][y] == 'p') {
                                returnV++;
                                break;
                            }
                        }
                    }
                    return returnV;
                }
            }
        }
        return 0;
    }



}
